1. Field of the Invention
The present invention relates to an error correction coding method and a Post-Viterbi processor, and more particularly, to a method of generating an effective generator polynomial for error correction by which a unique set of syndromes for each error event is produced and an error detection method for the same.
2. Description of the Related Art
It is well known that the performance of a partial response maximum likelihood (PRML) system can be improved by employing a Post-Viterbi processor that corrects dominant error events at the output of a detector. The idea is that once an error is detected, an attempt is made to correlate an estimated error signal with each of known forms of the dominant error patterns and identify the most likely error pattern and its position within a code word. The estimated error signal is constructed by taking a difference between an actual equalizer output and a Viterbi detector output stream convolved with an equalizer target response.
FIG. 1 illustrates a conventional Post-Viterbi processor. Referring FIG. 1, the Post-Viterbi processor comprises a target encoder 110, a bank of error correlation filters 114, a selector 116, an error detection coding encoder (EDC) decoder 118 and an error correction unit 120.
Data is encoded by an EDC encoder 102 before it is transmitted through a readback channel 104, which is, as well known, a part of a PRML system. An equalizer 106 equalizes data received through a readback channel 104 and then a maximum likelihood (ML) detector 108 detects the encoded data from the equalized data based on Viterbi algorithm. However, the detected data from the ML detector 108 may contains errors caused by noise on the readback channel 104.
The Post-Viterbi processor, shown in FIG. 1, performs error correction on dominant error events, so that the possibility of error correction can be increased.
In general, cyclic redundancy check (CRC) is used as an EDC. A conventional CRC code usually plays a single role in the detection of an occurrence of a dominant error event in a codeword, not yielding any information about the type and the position of the detected dominant error event. Accordingly, a Post-Viterbi processor has been utilized in order to find the type and the position of the detected dominant error event.
The idea of the Post-Viterbi processor is that once the error is detected, an attempt is made to correlate the estimated error signal with each of known forms of the dominant error patterns and identify the most likely error pattern and its position within the codeword. The estimated error signal is constructed by taking a difference between the actual equalizer output and the Viterbi detector output stream convolved with the equalizer target response.
The bank of error correlation filters 114 comprises of a bank of matched filters, each of which being associated with one of dominant error events. Each of matched filters produces a likelihood value for its assigned type of error events. The selector 116 selects the largest likelihood value among outputs of the bank of matched filters. The correction unit 120 corrects error event, which is occurred in the estimated data by the ML detector 108, through finding the error type and the position from the selector 116.
A set of dominant error events contains ±[2, −2], ±[2, −2, 2], ±[2, −2, 2, −2], ±[2, −2, 2, −2, 2], ±[2, −2, 0, 2, −2] and ±[2, −2, 2, −2, 2, −2] at density 1.4 under 50% additive white Gaussian noise (AWGN) and 50% medium noise in perpendicular recording. Thus, a total of at least six error correlation filters are associated with these error events. Therefore, once an error detection code detects any dominant error event based on syndrome checked by the EDC decoder 118, it may be corrected based on the information about the error type and its location provided by the bank of the error correlation filters. But, because of intersymbol interference (ISI) and noise, the Post-Viterbi processor often gives wrong information about the type and position of a detected dominant error event, which is called miscorrection.
The miscorrection consists of misselection and mispositioning. The misselection and mispositioning respectively mean the wrong selection of the error type and providing incorrect location for the selected error type.
Thus, there is a need for an error correction method that can produce a unique set of syndromes for each dominant error event so that the type of an occurred dominant error event can be immediately determined by one syndrome computation without any ambiguity and likely error position can also be obtained based on the syndrome and its period of the corresponding syndrome set, considerably reducing the probability of miscorrection.